package wiki.xsx.core.snowflake.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * @author xsx
 * @date 2022/5/25
 * @since 1.8
 */
@Data
@Configuration
@ConfigurationProperties("snowflake.config")
public class SnowflakeProperties {
    /**
     * 最大机器码id（5位），最大值为：31L，默认值为：31L
     */
    private final Long maxWorkerId = 31L;
    /**
     * 雪花模式，默认值为：NORMAL
     * <p>可部署的服务越多，耗时越长；可部署的服务越少，耗时越短</p>
     * <p>FAST: 可部署服务数为256</p>
     * <p>QUICK: 可部署服务数为512</p>
     * <p>NORMAL: 可部署服务数为1024</p>
     * <p>MORE: 可部署服务数为2048</p>
     * <p>MAX: 可部署服务数为4096</p>
     */
    private SnowflakeMode mode = SnowflakeMode.NORMAL;
    /**
     * 重复检测，默认为：true
     */
    private Boolean check = true;
    /**
     * 重复检测延迟时间，单位：ms，默认：5000ms
     */
    private Integer checkIntervalTime = 5000;
}
